package com.battle.pojo.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.battle.pojo.converter.StringListConverter;
import com.battle.pojo.enums.ArchitecturalStructureTypeEnum;
import com.battle.pojo.enums.FrameNatureTypeEnum;
import jakarta.persistence.*;
import lombok.Data;
import nirvana.core.domains.ann.AccEntity;
import nirvana.core.domains.entity.DomainBaseEntity;
import nirvana.core.domains.enums.EntityType;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author anni.zhu
 * @author anni.zhu@king-v.com
 * Created in 2024/8/22 14:33
 */
@Data
@TableName(value = "CASE_ALARM_PANEL",autoResultMap = true)
@Entity(name = "CASE_ALARM_PANEL")
@AccEntity(value = "接处警-战例信息", type = EntityType.SERVICE_ENTITY)
public class CaseAlarmPanel extends DomainBaseEntity<CaseAlarmPanel> {
    /**
     * 警情id
     */
    @Column()
    private Long sirensId;
    /**
     * 标题
     */
    @Column(length = 255)
    private String name;

    /**
     * 报警日期
     */
    @Column()
    private LocalDateTime alarmDate;

    /**
     * 接警日期
     */
    @Column()
    private LocalDateTime joinDate;

    /**
     * 着火地址
     */
    @Column(length = 255)
    private String ignitionSite;

    /**
     * 着火地址经度
     */
    @Column(length = 255)
    private String longitudeIgnition;

    /**
     * 着火地址纬度
     */
    @Column(length = 255)
    private  String latitudeIgnition;

    /**
     * 着火单位
     */
    @Column(length = 255)
    private String ignitionUnit;

    /**
     * 建筑情况
     */
    @Column(columnDefinition="varchar(500)")
    private String architecture;

    /**
     * 建筑情况照片
     */

    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "architecture_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> architecturePicture;

    /**
     * 天气
     */
    @Column(length = 255)
    private String weather;

    /**
     * 最低温度
     */
    @Column()
    private BigDecimal minTemperature;

    /**
     * 最高温度
     */
    @Column()
    private BigDecimal maxTemperature;

    /**
     * 风力
     */
    @Column()
    private String windPower;

    /**
     * 损失情况
     */
    @Column(columnDefinition="varchar(500)")
    private String loss;

    /**
     * 损失情况照片
     */

    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "loss_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> lossPicture;

    /**
     * 单位基本情况
     */
    @Column(columnDefinition="varchar(500)")
    private String uniInformation;

    /**
     * 单位基本情况照片
     */
    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "uni_information_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> uniInformationPicture;

    /**
     * 建筑结构
     */
    @Column()
    private ArchitecturalStructureTypeEnum architecturalStructure;

    /**
     * 建筑结构
     */
    @Column()
    private FrameNatureTypeEnum frameNature;

    /**
     * 其他信息
     */
    @Column(columnDefinition="varchar(500)")
    private String otherInformation;

    /**
     * 现场音频
     */
    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "live_audio",typeHandler = JacksonTypeHandler.class)
    private List<String> liveAudio;

    /**
     * 消火栓经度
     */
    @Column(length = 255)
    private String longitudeFireCock;

    /**
     * 消火栓纬度
     */
    @Column(length = 255)
    private  String latitudeFireCock;

    /**
     * 消火栓情况
     */
    @Column(length = 255)
    private String fireCock;

    /**
     * 消火栓情况照片
     */
    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "fire_cock_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> fireCockPicture;

    /**
     * 天然水源经度
     */
    @Column(length = 255)
    private String longitudeHeadwaters;

    /**
     * 天然水源纬度
     */
    @Column(length = 255)
    private  String latitudeHeadwaters;

    /**
     * 天然水源情况
     */
    @Column(length = 255)
    private String headwaters;

    /**
     * 天然水源情况照片
     */
    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "headwaters_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> headwatersPicture;

    /**
     * 固定消防设施情况
     */
    @Column(length = 255)
    private String fixedFireService;

    /**
     * 固定消防设施情况照片
     */
    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "fixed_fire_service_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> fixedFireServicePicture;

    /**
     * 接警电话呼入时间
     */
    @Column()
    private LocalDateTime callIncomingTime;

    /**
     * 接警电话接听时间
     */
    @Column()
    private LocalDateTime callAnsweringTime;

    /**
     * 电话接听用时
     */
    @Column()
    private Integer callTimeCount;

    /**
     * 立案时长
     */
    @Column()
    private Integer registerTimeCount;

    /**
     * 电话接听到立案预警用时
     */
    @Column()
    private Integer callRegisterTimeCount;

    /**
     * 报警录音
     */
    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "alarm_recording",typeHandler = JacksonTypeHandler.class)
    private List<String> alarmRecording;


    /**
     * 消火站调度情况补充说明
     */
    @Column(length = 255)
    private String smotheringStation;

    /**
     * 消火站调度情况补充说明照片
     */
    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "smothering_station_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> smotheringStationPicture;

    /**
     * 微站调度情况补充说明
     */
    @Column(length = 255)
    private String microSite;

    /**
     * 微站调度情况补充说明照片
     */
    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "micro_site_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> microSitePicture;

    /**
     * 安全提示推送补充说明
     */
    @Column(length = 255)
    private String safetyTips;

    /**
     * 安全提示推送补充说明照片
     */
    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "safety_tips_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> safetyTipsPicture;

    /**
     * 联勤联动补充说明
     */
    @Column(length = 255)
    private String combinedService;

    /**
     * 联勤联动补充说明照片
     */
    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "combined_service_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> combinedServicePicture;

    /**
     * 初报
     */
    @Column(length = 255)
    private String preliminaryStudy;

    /**
     * 初报
     */
    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "preliminary_study_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> preliminaryStudyPicture;

    /**
     * 续报
     */
    @Column(length = 255)
    private String repeats;

    /**
     * 续报
     */
    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "repeat_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> repeatPicture;

    /**
     * 终报
     */
    @Column(length = 255)
    private String  finalDeclaration;

    /**
     * 终报
     */
    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "final_declaration_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> finalDeclarationPicture;

    /**
     * 接警环节
     */
    @Column(length = 255)
    private String  alarmLink;

    /**
     * 接警环节
     */
    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "alarm_link_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> alarmLinkPicture;

    /**
     * 调度环节
     */
    @Column(length = 255)
    private String  schedulingLink;

    /**
     * 调度环节
     */
    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "scheduling_link_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> schedulingLinkPicture;

    /**
     * 报送环节
     */
    @Column(length = 255)
    private String  submissionLink;

    /**
     * 报送环节
     */
    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "submission_link_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> submissionLinkPicture;

    /**
     * 政改措施
     */
    @Column(length = 255)
    private String improvement;

    /**
     * 政改措施
     */
    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "improvement_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> improvementPicture;
}
